Skip to content

feat(client): add validate_structured_output option to ClientSession#2667

Open
adityasingh2400 wants to merge 1 commit into
modelcontextprotocol:mainfrom
adityasingh2400:adityasingh2400/skip-output-validation
Open

feat(client): add validate_structured_output option to ClientSession#2667
adityasingh2400 wants to merge 1 commit into
modelcontextprotocol:mainfrom
adityasingh2400:adityasingh2400/skip-output-validation

Conversation

@adityasingh2400
Copy link
Copy Markdown

Closes #2626.

Real-world MCP servers occasionally return structured_content that does not match their advertised outputSchema. The client currently raises a RuntimeError and drops the result, leaving the caller no escape hatch. This adds a validate_structured_output keyword on ClientSession and Client (default True, so existing behavior is preserved) that lets callers opt out of strict validation when interoperating with non-conformant servers.

When validation is disabled, the client logs a debug message and returns the result unchanged. The motivating case in the issue is a server whose output schema lists a closed set of string literals but is missing one of the values it actually emits; the structured content is otherwise usable and is better surfaced to the caller than dropped.

Tests cover both the default-on path (still raises) and the opt-out path (returns the invalid structured_content and emits a debug log).

Closes modelcontextprotocol#2626.

Real-world MCP servers occasionally return structured_content that does
not match their advertised outputSchema. The client currently raises a
RuntimeError and drops the result, leaving the caller no escape hatch.
This adds a validate_structured_output keyword on ClientSession and
Client (default True, so existing behavior is preserved) that lets
callers opt out of strict validation when interoperating with
non-conformant servers.

When validation is disabled, the client logs a debug message and
returns the result unchanged.

Tests cover both the default-on and opt-out modes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add option to skip output validation for mcp client

1 participant